<?php
/**
 * Created by PhpStorm.
 * FileName: RegionModel.class.php
 * User: Administrator
 * Date: 2017/12/21
 * Time: 16:58
 */

namespace Admin\Model;

use Think\Model;

class RegionModel extends Model {

    protected  $tableName = 'region';

    /**
     * 根据父级id，获取直接子集地区列表
     * @param int $pid 父级id
     * @return mixed
     */
    public function getChildRegionByPid($pid=0) {
        $result = $this->where(array('pid' => $pid))->order('convert(name using gbk) asc')->select();
        return $result;
    }

    /**
     * 根据当前id，获取所有父级地区列表（已排序）
     * @param $parentRegion 递归结果保存变量
     * @param $id 地区id
     * @return mixed
     */
    public function getParentRegionById(&$parentRegion,$id) {
        $this->_getParentRegionById($parentRegion,$id);
        krsort($parentRegion);
        return $parentRegion;
    }

    /**
     * 根据当前id，获取所有父级地区列表（未排序）
     * @param $parentRegion 递归结果保存变量
     * @param $id 地区id
     */
    private function _getParentRegionById(&$parentRegion,$id) {
        $curRegion = $this->where(array('id' => $id))->find();
        if ($curRegion) {
            $parentRegion[] = $curRegion;
            $pid = $curRegion['pid'];
            if ($pid > 0) {
                $this->_getParentRegionById($parentRegion,$pid);
            }
        }
    }

}